From cc5f2f8995ae8825b416f79f7f97930d011642c5 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Thu, 2 May 2019 02:46:23 +0200 Subject: [PATCH] gsk: Export gsk_broadway_renderer_new() ... when broadway is enabled. --- docs/reference/gsk/gsk4-sections.txt | 1 + gsk/broadway/gskbroadwayrenderer.c | 23 +++++++++- gsk/broadway/gskbroadwayrenderer.h | 52 +++++++++++++++++++++++ gsk/broadway/gskbroadwayrendererprivate.h | 24 ----------- gsk/gsk.h | 1 + gsk/gskrenderer.c | 2 +- gsk/meson.build | 8 +++- 7 files changed, 84 insertions(+), 27 deletions(-) create mode 100644 gsk/broadway/gskbroadwayrenderer.h delete mode 100644 gsk/broadway/gskbroadwayrendererprivate.h diff --git a/docs/reference/gsk/gsk4-sections.txt b/docs/reference/gsk/gsk4-sections.txt index f37c5c3b2e..3573f8cb31 100644 --- a/docs/reference/gsk/gsk4-sections.txt +++ b/docs/reference/gsk/gsk4-sections.txt @@ -10,6 +10,7 @@ gsk_renderer_render_texture gsk_renderer_new_for_surface gsk_gl_renderer_new gsk_cairo_renderer_new +gsk_broadway_renderer_new GSK_IS_RENDERER GSK_RENDERER diff --git a/gsk/broadway/gskbroadwayrenderer.c b/gsk/broadway/gskbroadwayrenderer.c index 594c2cba8c..662ee64934 100644 --- a/gsk/broadway/gskbroadwayrenderer.c +++ b/gsk/broadway/gskbroadwayrenderer.c @@ -1,6 +1,7 @@ #include "config.h" -#include "gskbroadwayrendererprivate.h" +#include "gskbroadwayrenderer.h" + #include "broadway/gdkprivate-broadway.h" #include "gskdebugprivate.h" @@ -827,3 +828,23 @@ static void gsk_broadway_renderer_init (GskBroadwayRenderer *self) { } + +/** + * gsk_broadway_renderer_new: + * + * Creates a new Broadway renderer. + * + * The Broadway renderer is the default renderer for the broadway backend. + * It will only work with broadway surfaces, otherwise it will fail the + * call to gdk_renderer_realize(). + * + * This function is only available when GTK was compiled with Broadway + * support. + * + * Returns: a new Broadway renderer. + **/ +GskRenderer * +gsk_broadway_renderer_new (void) +{ + return g_object_new (GSK_TYPE_BROADWAY_RENDERER, NULL); +} diff --git a/gsk/broadway/gskbroadwayrenderer.h b/gsk/broadway/gskbroadwayrenderer.h new file mode 100644 index 0000000000..9e8d3dbe0b --- /dev/null +++ b/gsk/broadway/gskbroadwayrenderer.h @@ -0,0 +1,52 @@ +/* + * Copyright © 2019 Alexander Larsson + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see . + */ + +#ifndef __GSK_BROADWAY_RENDERER_H__ +#define __GSK_BROADWAY_RENDERER_H__ + +#include +#include + +#ifdef GDK_WINDOWING_BROADWAY + +#include + +G_BEGIN_DECLS + +#define GSK_TYPE_BROADWAY_RENDERER (gsk_broadway_renderer_get_type ()) + +#define GSK_BROADWAY_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSK_TYPE_BROADWAY_RENDERER, GskBroadwayRenderer)) +#define GSK_IS_BROADWAY_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSK_TYPE_BROADWAY_RENDERER)) +#define GSK_BROADWAY_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSK_TYPE_BROADWAY_RENDERER, GskBroadwayRendererClass)) +#define GSK_IS_BROADWAY_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSK_TYPE_BROADWAY_RENDERER)) +#define GSK_BROADWAY_RENDERER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSK_TYPE_BROADWAY_RENDERER, GskBroadwayRendererClass)) + +typedef struct _GskBroadwayRenderer GskBroadwayRenderer; +typedef struct _GskBroadwayRendererClass GskBroadwayRendererClass; + + +GDK_AVAILABLE_IN_ALL +GType gsk_broadway_renderer_get_type (void) G_GNUC_CONST; + +GDK_AVAILABLE_IN_ALL +GskRenderer * gsk_broadway_renderer_new (void); + +G_END_DECLS + +#endif /* GDK_WINDOWING_BROADWAY */ + +#endif /* __GSK_BROADWAY_RENDERER_H__ */ diff --git a/gsk/broadway/gskbroadwayrendererprivate.h b/gsk/broadway/gskbroadwayrendererprivate.h deleted file mode 100644 index acc69f7117..0000000000 --- a/gsk/broadway/gskbroadwayrendererprivate.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef __GSK_BROADWAY_RENDERER_PRIVATE_H__ -#define __GSK_BROADWAY_RENDERER_PRIVATE_H__ - -#include "broadway/gdkbroadway.h" -#include - -G_BEGIN_DECLS - -#define GSK_TYPE_BROADWAY_RENDERER (gsk_broadway_renderer_get_type ()) - -#define GSK_BROADWAY_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSK_TYPE_BROADWAY_RENDERER, GskBroadwayRenderer)) -#define GSK_IS_BROADWAY_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSK_TYPE_BROADWAY_RENDERER)) -#define GSK_BROADWAY_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSK_TYPE_BROADWAY_RENDERER, GskBroadwayRendererClass)) -#define GSK_IS_BROADWAY_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSK_TYPE_BROADWAY_RENDERER)) -#define GSK_BROADWAY_RENDERER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSK_TYPE_BROADWAY_RENDERER, GskBroadwayRendererClass)) - -typedef struct _GskBroadwayRenderer GskBroadwayRenderer; -typedef struct _GskBroadwayRendererClass GskBroadwayRendererClass; - -GType gsk_broadway_renderer_get_type (void) G_GNUC_CONST; - -G_END_DECLS - -#endif /* __GSK_BROADWAY_RENDERER_PRIVATE_H__ */ diff --git a/gsk/gsk.h b/gsk/gsk.h index 5f0938b0e0..b8f6d58ee9 100644 --- a/gsk/gsk.h +++ b/gsk/gsk.h @@ -28,6 +28,7 @@ #include #include +#include #include #include diff --git a/gsk/gskrenderer.c b/gsk/gskrenderer.c index b5b07f9707..73c3247b19 100644 --- a/gsk/gskrenderer.c +++ b/gsk/gskrenderer.c @@ -55,7 +55,7 @@ #include #endif #ifdef GDK_WINDOWING_BROADWAY -#include "broadway/gskbroadwayrendererprivate.h" +#include "broadway/gskbroadwayrenderer.h" #endif #ifdef GDK_RENDERING_VULKAN #include "vulkan/gskvulkanrendererprivate.h" diff --git a/gsk/meson.build b/gsk/meson.build index b3d87fcec9..c28d931932 100644 --- a/gsk/meson.build +++ b/gsk/meson.build @@ -65,6 +65,12 @@ gsk_public_gl_headers = files([ install_headers(gsk_public_gl_headers, subdir: 'gtk-4.0/gsk/gl') gsk_public_headers += gsk_public_gl_headers +gsk_public_broadway_headers = files([ + 'broadway/gskbroadwayrenderer.h' +]) +install_headers(gsk_public_broadway_headers, subdir: 'gtk-4.0/gsk/broadway') +gsk_public_headers += gsk_public_broadway_headers + gsk_private_vulkan_shaders = [] # This is an odd split because we use configure_file() below to workaround # a limitation in meson preventing using custom_target() with gnome.compile_resources() @@ -104,7 +110,7 @@ if have_vulkan endif # have_vulkan if get_variable('broadway_enabled') - gsk_private_sources += files([ + gsk_public_sources += files([ 'broadway/gskbroadwayrenderer.c', ]) endif -- 2.30.2